1. Technical Field
This invention relates to the field of Internet Protocol (IP) telephony and more particularly to dynamic priority adjustment in a real time streaming engine (RTSE).
2. Description of the Related Art
Until recently, the World Wide Web (the “Web”) has relied exclusively on visual interfaces to deliver information and services to end-users through conventional computers. In doing so, a substantial potential base of end users has been ignored: those who because of time, location or cost constraints do not have access to a conventional computer. Still, many end users can access a telephone. Hence, providing “conversational access” to the Web permits Web sites to reach this untapped group of end users.
Conversational access to the Web can be defined as processing spoken input and audio output by way of a voice input device such as a telephone, radio, voice-enabled computing device and the like. Users of conversational access can benefit from the convenience of mobile use of the Internet for transactions while transaction providers incorporating conversational interfaces in their Web sites can benefit from the low transaction costs of the Internet. Additionally, unlike applications configured with a telephonic interface which rely on DTMF input, applications configured with a conversational interface can be used in a hands-free or eyes-free environment.
Recently, improvements in voice algorithms and substantial increases in computer processing power have facilitated advancements in conversational interfaces for Web-enabled applications. Moreover, recent advances in packet-switched multimedia transport technologies have eased the task of integrating telephony applications for processing voice data received over a Public Switched Telephone Network (PSTN) with data applications operating in packet-switched networks such as the Internet. Support for voice communications using the Internet Protocol (IP), often referred to as “voice over IP” (VoIP), is one such advancement in packet-switched multimedia transport. These improvements and advances have assisted voice application developers in making voice the most natural and efficient interface to the Web. Still, deficiencies remain.
Specifically, conventional voice call processing systems which provide a conversational interface to Web-enabled applications can be configured to process multiple voice calls simultaneously. Many such conventional voice call processing systems can use the Real Time Protocol (RTP) to transmit and receive audio data so as to ensure the real time processing of voice data all the while avoiding problems commonly associated with computer-based audio processing like timing jitter. In particular, voice data packets can be received in a VoIP gateway from voice call end points in the PSTN and can be forwarded using RTP to a real time streaming engine (RTSE) disposed in a packet switched network. Conversely, audio data, such as synthesized speech audio or recorded, digital audio, can be provided to the RTSE by a network source and streamed from the RTSE to the VoIP gateway en route to selected voice call end points, again using RTP.
Notably, according to the RTP protocol, audio data packets must be sent within a specific amount of time. For instance, in the case of some commercially available VoIP gateways, packets of audio data are separated by twenty milliseconds. Thus, when processing multiple concurrent voice calls, a conventional RTSE must ensure that outgoing audio packets are forwarded to the VoIP gateway in a timely manner. In order to satisfy these strict timing requirements, however, conventional RTSEs utilizes high priority threads for every outgoing audio stream.
Still, only so much CPU capacity exists on any given computing device used to host an RTSE. Eventually, as the number of concurrent voice calls processed by the RTSE increases, the CPU bandwidth can become fully utilized. When the CPU bandwidth becomes fully utilized, the operating system can no longer provide all of the high priority threads for the necessary time slices required to send audio data in a timely manner. Conventional voice call processing systems are deficient in this regard. Accordingly, there exists a need for an enhanced method and system for streaming audio data to and from voice call end points in a voice call processing system.